#ifndef EXAMPLESCENE_H
#define EXAMPLESCENE_H


#include <yam3dscene.h>
#include <graphics/mesh.h>
#include <graphics/camera.h>
#include <render/shader.h>
#include <render/texture2d.h>

using namespace yam3d;

class ExampleScene : public Yam3DScene
{
public:
    ExampleScene();
    virtual ~ExampleScene();

    virtual void resize(int width, int height);
    virtual void update(float deltaTime);
    virtual void render() const;

    static Yam3DScene* createInstance()
    {
        return new ExampleScene();
    }

private:
    graphics::Camera*       m_camera;
    graphics::Mesh*         m_mesh;
    render::Texture2D*      m_baseMap;
    render::Texture2D*      m_lightMap;
    render::ShaderProgram*  m_program;
    graphics::Pass          m_pass;
    float                   m_totalTime;

};

#endif // EXAMPLESCENE_H
